/**
* 版权所有：福建邮科电信业务部厦门研发中心 
*====================================================
* 文件名称: PathHelper.java
* 修订记录：
* No    日期				作者(操作:具体内容)
* 1.    Jun 16, 2012			詹保山(softzbs@126.com)(创建:创建文件)
*====================================================
* 类描述：(说明未实现或其它不应生成javadoc的内容)
* 
*/
package com.devframe.web.util.common;

import org.apache.log4j.Logger;

import com.devframe.web.MyStatics;
import com.devframe.web.loader.MyWebContextLoader;


/**
 *<pre><b><font color="blue">PathHelper</font></b></pre>
 *
 *<pre><b>&nbsp;--描述说明--</b></pre>
 * <pre>
 *   解析出JSP、XLS、FTL 等跳转页面的路径
 * </pre>
 * <pre>
 * <b>--样例--</b>
 *   PathHelper obj = new PathHelper();
 *   obj.method();
 * </pre>
 */
public class PagePathUtils {
	private static final Logger LOG = Logger.getLogger(PagePathUtils.class);

	/**
	 * JSP页面的后缀 PAGE_JSP_SUFFIX=".jsp"
	 */
	private static final String PAGE_JSP_SUFFIX=".jsp";
	
	private static String accessActionTypeALastLevelPath(Class<?> actionClazz){
		String pkgName = actionClazz.getPackage().getName();
		if(LOG.isDebugEnabled()){
			LOG.debug("包名："+pkgName);
		}
		LOG.info(pkgName);
		String path = pkgName.substring(0,pkgName.lastIndexOf(MyStatics.ACTION_PACKAGE_NAME_SUFFIX)-1).toLowerCase();
        //获取到action上一级的包名
        path = path.substring(path.lastIndexOf(".")+1);
        //将点换成 反斜线
        path=path.replaceAll("\\.", MyStatics.BACKSLASH);
        if(path.lastIndexOf("\\")==-1){
        	path=path+MyStatics.BACKSLASH;
        }
        return path;
	}
	
	private static String accessActionTypeBLastLevelPath(Class<?> actionClazz){
		String pkgName = actionClazz.getPackage().getName();
		if(LOG.isDebugEnabled()){
			LOG.debug("包名："+pkgName);
			LOG.info(pkgName);
		}
	
		String path = pkgName.substring(pkgName.lastIndexOf(MyStatics.ACTION_PACKAGE_NAME_SUFFIX)).toLowerCase();
        //获取到action上一级的包名
        path = path.substring(path.lastIndexOf(".")+1);
        //将点换成 反斜线
        path=path.replaceAll("\\.", MyStatics.BACKSLASH);
        if(path.lastIndexOf("\\")==-1){
        	path=path+MyStatics.BACKSLASH;
        }
        return path;
	}
	/**
	 * 获取JSP页面的JSP 的路径
	 *    //系统根据action包路径(去掉action,并转为路径)+请求名称(xxx.do,去掉点do)+方法名
	 * @param actionClazz
	 * @param actionName
	 * @param method
	 * @return
	 * @author:詹保山
	 */
	public static String accessTypeAJspPagePath(Class<?> actionClazz,String actionName,String method){
		String path=PagePathUtils.accessActionTypeALastLevelPath(actionClazz);
		if(LOG.isDebugEnabled()){
			LOG.debug("上级路径："+path+"actionName="+actionName+",method="+method);
		}
        //系统根据路径+action 上一级包名+请求名称(xxx.do,去掉点do)+方法名MyContextContainer.getInstance().getPageRootPath()
       path = MyWebContextLoader.getInstance().getPageRootPath()+MyStatics.BACKSLASH+
       		  path+actionName+MyStatics.BACKSLASH+
       		  method+PagePathUtils.PAGE_JSP_SUFFIX;
		if(LOG.isDebugEnabled()){
			LOG.debug("路径："+path);
		}
        return path;
	}
	
	public static String accessTypeBJspPagePath(Class<?> actionClazz,String actionName,String method){
		String path=PagePathUtils.accessActionTypeBLastLevelPath(actionClazz);
		if(LOG.isDebugEnabled()){
			LOG.debug("上级路径："+path+"actionName="+actionName+",method="+method);
		}
        //系统根据路径+action 上一级包名+请求名称(xxx.do,去掉点do)+方法名MyContextContainer.getInstance().getPageRootPath()
       path = MyWebContextLoader.getInstance().getPageRootPath()+MyStatics.BACKSLASH+
       		  path+actionName+MyStatics.BACKSLASH+
       		  method+PagePathUtils.PAGE_JSP_SUFFIX;
		if(LOG.isDebugEnabled()){
			LOG.debug("路径："+path);
		}
        return path;
	}
	
	

//	
//	public static String accessFtlPagePath(Class<?> actionClazz,String actionName,String method){
//		String path=PagePathUtils.accessActionLastLevelPath(actionClazz);
//		if(LOG.isDebugEnabled()){
//			LOG.debug("上级路径："+path+"actionName="+actionName+",method="+method);
//		}
//        //系统根据路径+action 上一级包名+请求名称(xxx.do,去掉点do)+方法名MyContextContainer.getInstance().getPageRootPath()
//		//MyWebContextLoader.getInstance().getPageRootPath()+
//       path = "classes/"+MyStatics.BACKSLASH+
//       		  path+MyStatics.BACKSLASH+actionName+MyStatics.BACKSLASH+
//       		  method+".ftl";
//		if(LOG.isDebugEnabled()){
//			LOG.debug("路径："+path);
//		}
//        return path;
//	}

}
